<?php
  // Se obtiene la clave privada con la que se va a firmar
  $Clave = openssl_pkey_get_private('file://key/fundapro_key.pem','felixsegurondoflores abelarman');
 
  $nit = '123';
  $nombre='fsegurondo';

$Mensaje='NIT= '.$nit.' nombreUsuario='.$nombre;
  // y se usa para firmar el mensaje
  openssl_sign($Mensaje,$Firma, $Clave);
?>
 
<h3>Mensaje original te amo adry</h3>
<p><?= $Mensaje ?></p>
<h3>Firma</h3>
<textarea cols='70' rows='15'><?= $Firma ?></textarea>
 
<?php
  // Se lee el certificado con el que va a comprobarse la firma
  $Cert = openssl_x509_read('file://key/fundapro.pem');
  // Se verifica el mensaje que supuestamente se ha recibido
  if(openssl_verify($Mensaje, $Firma, $Cert)) 
    print "<p>La firma se verifica satisfactoriamente</p>";
  else
    print "<p>Fallo en la verificación de la firma</p>";
 
  // Liberación del certificado y la clave
  openssl_x509_free($Cert);
  openssl_pkey_free($Clave);
 
?>
